/**
 * GM_xmlhttpRequest(details)
 * Make an xmlHttpRequest.
 * Property of details:
 * @see <a href="https://www.tampermonkey.net/documentation.php#GM_xmlhttpRequest"></a>
 * @type {{data: *, onerror: OnErrorEventHandler | ((this:DedicatedWorkerGlobalScope, ev: ErrorEvent) => any), onreadystatechange: (this:Window, ev: ProgressEvent<Window>) => any, responseText: *, responseXML: *, It: *, timeout: *, overrideMimeType: *, Returns: *, responseType: *, password: *, context: *, onloadstart: (this:Window, ev: Event) => any, onprogress: (this:Window, ev: ProgressEvent) => any, nocache: *, readyState: *, headers: (*|{}), method: *, cookie: *, url: *, onload: (this:Window, ev: Event) => any, responseHeaders: *, revalidate: *, abort: *, response: *, binary: *, fetch: (input: RequestInfo, init?: RequestInit) => Promise<Response>, statusText: *, anonymous: *, onabort: (this:Window, ev: UIEvent) => any, user: *, finalUrl: *, ontimeout: *, status: string}}
 * @since 202217
 */
let tamperMonkeyParamEn = {
    method, //one of GET, HEAD, POST
    url, //the destination URL
    headers, //ie. user-agent, referer, ... (some special headers are not supported by Safari and Android browsers)
    data, //some string to send via a POST request
    cookie, //a cookie to be patched into the sent cookie set
    binary, //send the data string in binary mode
    nocache, //don't cache the resource
    revalidate, //revalidate maybe cached content
    timeout, //a timeout in ms
    context, //a property which will be added to the response object
    responseType, //one of arraybuffer, blob, json or stream
    overrideMimeType, //a MIME type for the request
    anonymous, //don't send cookies with the requests (please see the fetch notes)
    fetch, //(beta) use a fetch instead of a xhr request
    //(at Chrome this causes details.timeout and xhr.onprogress to not work and makes xhr.onreadystatechange receive only readyState 4 events)
    user, //a user name for authentication
    password, //a password
    onabort, //callback to be executed if the request was aborted
    onerror, //callback to be executed if the request ended up with an error
    onloadstart, //callback to be executed on load start, provides access to the stream object if responseType is set to "stream"
    onprogress, //callback to be executed if the request made some progress
    onreadystatechange, //callback to be executed if the request's ready state changed
    ontimeout, //callback to be executed if the request failed due to a timeout
    onload: { //callback to be executed if the request was loaded.
        //It, gets one argument with the following attributes:
        finalUrl, //- the final URL after all redirects from where the data was loaded
        readyState, //- the ready state
        status, //- the request status
        statusText, //- the request status text
        responseHeaders, //- the request response headers
        response, //- the response data as object if details.responseType was set
        responseXML, //- the response data as XML document
        responseText, //- the response data as plain string
        //Returns an object with the following property:
    },
    abort, //- function to be called to cancel this request
};
//Note: the synchronous flag at details is not supported

//Important: if you want to use this method then please also check the documentation about @connect.
